package com.lingyu.jsjx.domain;

import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 学生评价对象 jsjx_student_evaluation
 * 
 * @author ruoyi
 * @date 2025-08-08
 */
@Data
@TableName("jsjx_student_evaluation")
public class StudentEvaluation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 评价记录ID */
    @TableId(type = IdType.AUTO,value = "student_eval_id")
    private Long studentEvalId;

    /** 教师姓名id */
    @Excel(name = "教师姓名id")
    private Long teacherId;

    /** 教师姓名name */
    @Excel(name = "教师姓名name")
    private String teacherName;

    /** 学生姓名 */
    @Excel(name = "学生姓名")
    private String studentName;

    /** 班级名称 */
    @Excel(name = "班级名称")
    private String clazzName;

    private Long clazzId;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 知识易理解度评分（1-10） */
    @Excel(name = "知识易理解度评分", readConverterExp = "1=-10")
    private Long knowledgeClarity;

    /** 实训指导能力评分（1-10） */
    @Excel(name = "实训指导能力评分", readConverterExp = "1=-10")
    private Long practicalGuidance;

    /** 作业布置合理性评分（1-10） */
    @Excel(name = "作业布置合理性评分", readConverterExp = "1=-10")
    private Long assignmentQuality;

    /** 课堂管理水平评分（1-10） */
    @Excel(name = "课堂管理水平评分", readConverterExp = "1=-10")
    private Long classroomManagement;

    /** 师生互动频率评分（1-10） */
    @Excel(name = "师生互动频率评分", readConverterExp = "1=-10")
    private Long interactionFrequency;

    /** 师德师风表现评分（1-10） */
    @Excel(name = "师德师风表现评分", readConverterExp = "1=-10")
    private Long teacherEthics;

    /** 公平公正性评分（1-10） */
    @Excel(name = "公平公正性评分", readConverterExp = "1=-10")
    private Long fairness;

    /** 职业技能示范评分（1-10） */
    @Excel(name = "职业技能示范评分", readConverterExp = "1=-10")
    private Long skillDemonstration;

    /** 学习动力激发评分（1-10） */
    @Excel(name = "学习动力激发评分", readConverterExp = "1=-10")
    private Long motivation;

    /** 批评方式接受度评分（1-10） */
    @Excel(name = "批评方式接受度评分", readConverterExp = "1=-10")
    private Long feedbackAcceptance;

    /** 综合得分（自动计算） */
    @Excel(name = "综合得分", readConverterExp = "自=动计算")
    private Long totalScore;

    /** 是否匿名（2否1是） */
    @Excel(name = "是否匿名", readConverterExp = "2否1是")
    private String isAnonymousName;


    private Long isAnonymousId;

    /** 具体建议 */
    @Excel(name = "具体建议")
    private String suggestions;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("studentEvalId", getStudentEvalId())
            .append("teacherId", getTeacherId())
            .append("teacherName", getTeacherName())
            .append("studentName", getStudentName())
            .append("clazzName", getClazzName())
            .append("clazzId", getClazzId())
            .append("contactPhone", getContactPhone())
            .append("knowledgeClarity", getKnowledgeClarity())
            .append("practicalGuidance", getPracticalGuidance())
            .append("assignmentQuality", getAssignmentQuality())
            .append("classroomManagement", getClassroomManagement())
            .append("interactionFrequency", getInteractionFrequency())
            .append("teacherEthics", getTeacherEthics())
            .append("fairness", getFairness())
            .append("skillDemonstration", getSkillDemonstration())
            .append("motivation", getMotivation())
            .append("feedbackAcceptance", getFeedbackAcceptance())
            .append("totalScore", getTotalScore())
            .append("isAnonymousId", getIsAnonymousId())
            .append("isAnonymousName", getIsAnonymousName())
            .append("suggestions", getSuggestions())
            .append("createBy", getCreateBy())
            .append("createByName", getCreateByName())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateByName", getUpdateByName())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
